import { ElLoading } from 'element-plus'

/**
 * 全局加载指示器服务
 * @param {Object} options - 加载配置项
 * @param {string} [options.text='Loading...'] - 加载文本
 * @param {string} [options.background='rgba(0, 0, 0, 0.7)'] - 背景色
 * @param {boolean} [options.lock=true] - 是否锁定滚动
 * @param {string} [options.customClass=''] - 自定义类名
 * @returns {Object} 包含 close 方法的对象
 */
export const useLoading = (options = {}) => {
  // 合并默认配置和用户配置
  const loadingOptions = {
    lock: true,
    text: 'Loading...',
    background: 'rgba(0, 0, 0, 0.7)',
    customClass: 'global-loading',
    ...options
  }
  
  // 创建加载实例
  const loadingInstance = ElLoading.service(loadingOptions)
  
  // 返回控制方法
  return {
    /**
     * 关闭加载指示器
     */
    close: () => {
      if (loadingInstance) {
        loadingInstance.close()
      }
    },
    
    /**
     * 更新加载文本
     * @param {string} text - 新的加载文本
     */
    updateText: (text) => {
      if (loadingInstance) {
        loadingInstance.setText(text)
      }
    }
  }
}